Open In Colab

  1. Allez ici et téléchargez en local les fichiers "haarcascade.xml", "BW.png" , et "people_group.png"
  2. Cliquez sur l'icone de dossiers dans la barre verticale à gauche de ce notebook, puis cliquez sur "remonter d'un niveau"

capture.png 3. faites un clic droit sur le dossier "content" et choisissez "Importer"

cap_imp.png 4. Importez les fichiers téléchargés, vous pouvez également importer vos propres photos contenant des visages 5. Exécutez ce notebook 6. Pour tester sur vos photos importées : allez dans "content" et faites un clic droit sur le nom de votre photo téléversée 7. Choisissez "copier le chemin d'accès"

chemin.png 8. Exécuter les lignes de code suivantes

face_detect(votre_chemin_copié)
Image('facerec_out.png')
In [ ]:
!pip install opencv-python
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Requirement already satisfied: opencv-python in /usr/local/lib/python3.7/dist-packages (4.1.2.30)
Requirement already satisfied: numpy>=1.14.5 in /usr/local/lib/python3.7/dist-packages (from opencv-python) (1.21.6)
In [ ]:
from IPython.display import Image
import sys
import cv2
In [ ]:
def face_detect(imgpath, nogui = True):

    image = cv2.imread(imgpath)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    face_cascade = cv2.CascadeClassifier('haarcascade.xml')

    faces = face_cascade.detectMultiScale(
        gray,
        scaleFactor = 1.2,
        minNeighbors = 5,
        minSize = (30,30)

        )

    print("The number of faces found = ", len(faces))

    for (x,y,w,h) in faces:
        cv2.rectangle(image, (x,y), (x+h, y+h), (0, 255, 0), 2)

    if nogui:
        cv2.imwrite('facerec_out.png', image)
        return len(faces)
    else:
        cv2.imshow("Faces found", image)
        cv2.waitKey(0)
In [ ]:
face_detect('people_group.png')
The number of faces found =  3
Out[ ]:
3
In [ ]:
Image('facerec_out.png')
Out[ ]:
  • Pourquoi manque-t-il un visage ?
  • Essayez avec le groupe U2
  • Que constatez vous ?

EXEMPLE 2 : Photo de Classe en noir et blanc¶

In [ ]:
face_detect("BW.png")
The number of faces found =  41
Out[ ]:
41
In [ ]:
Image('facerec_out.png')
Out[ ]:

A VOTRE TOUR¶

  • Chargez d'autres images de votre choix (3 à 5)
  • Essayez de mettre l'algo CV2 en difficulté
  • Que constatez vous ?
  • Remplissez ce fichier
In [ ]: